Configurable interfaces

ABSTRACT

Embodiments of a method and system for utilizing a configurable interface are disclosed. User information for a first user is accessed. The user information is reviewed to determine whether the user information includes a preselected configurable interface. The preselected configurable interface is provided based on the user information including the preselected configurable interface. Alternatively, based on the user information not including the preselected configurable interface, a configurable interface based on a user selection of the configurable interface from a plurality of available configurable interfaces is configured.

RELATED APPLICATIONS

This application claims the priority benefit of U.S. patent applicationSer. No. 11/646,709, filed Dec. 28, 2006 and entitled “ConfigurableInterfaces,” which claims the priority benefit of U.S. ProvisionalApplication Ser. No. 60/804,385, filed Jun. 9, 2006, both of which areincorporated herein by reference.

TECHNICAL FIELD

The present application relates generally to the field of datacommunication and, in one specific example, to a method and system forutilizing a configurable interface.

BACKGROUND

An interface may be used to provide access to a networked system (e.g.,a web site). The interface is typically defined by the networked systemto provide users accessing the networked system with a similar andconsistent interface.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings in which:

FIG. 1 is a network diagram depicting a network system, according to oneembodiment, having a client server architecture configured forexchanging data over a network;

FIG. 2 is a block diagram illustrating an example embodiment of multiplenetwork and marketplace applications, which are provided as part of thenetwork-based marketplace;

FIG. 3 is a block diagram of an example interface data structure;

FIG. 4 is a block diagram of an example functional module that may bedeployed in the interface data structure;

FIG. 5 is a flowchart illustrating a method for providing system accessaccording to an example embodiment;

FIG. 6 is a flowchart illustrating a method for accessing a configurableinterface;

FIG. 7 is a flowchart illustrating a method for providing access througha configurable interface; and

FIG. 8 shows a diagrammatic representation of machine in the exampleform of a computer system within which a set of instructions may beexecuted causing the machine to perform any one or more of themethodologies discussed herein.

DETAILED DESCRIPTION

Example methods and systems for utilizing configurable interfaces aredescribed. In the following description, for purposes of explanation,numerous specific details are set forth in order to provide a thoroughunderstanding of example embodiments. It will be evident, however, toone skilled in the art that the present invention may be practicedwithout these specific details.

In an example embodiment, an interface server may include a configurableinterface. The configurable interface may provide a user interface toenable communication in a system with a client operating on a clientmachine. An interface data structure may include a structure applicationprogram interface (API) and at least one component. The structure APImay provide an interface for communication between the configurableinterface and an application server. The at least one component mayprovide functionality to the configurable interface server-side toenable communication through the structure API with an applicationhosted on the application server.

In an example embodiment, an interface selection may be received. Theinterface selection may be a selection of a configurable interface. Theconfigurable interface may provide a user interface to enablecommunication in a system with a client operating on a client machine. Astructure application program interface (API) and at least one componentmay be associated with the configurable interface. The structure API mayprovide an interface for communication between the configurableinterface and an application server. The at least one component mayprovide functionality to the configurable interface server-side forenabling communication through the structure API with an applicationhosted on the application server. The configurable interface may beconfigured with the structure API and the at least one component. Theconfigurable interface may be provided in the system for communicationwith the application.

In an example embodiment, a communication may be received in a systemwith a configurable interface. The configurable interface may provide auser interface to enable communication in the system with a clientoperating on a client machine. The configurable interface may receivefunctionality server-side from at least one component to enablecommunication with an application hosted on an application server. Atleast one functional component may be identified from the at least onecomponent relevant to the communication. The communication may beprocessed with the at least one functional component. A result may bereceived from the application as a result of processing thecommunication. The result may be presented to the client through theconfigurable interface.

FIG. 1 is a network diagram depicting a client-server system 100, withinwhich one example embodiment may be deployed. A networked system 102, inthe example forms of a network-based marketplace or publication system,provides server-side functionality, via a network 104 (e.g., theInternet or Wide Area Network (WAN)) to one or more clients. FIG. 1illustrates, for example, a web client 106 (e.g., a browser, such as theInternet Explorer browser developed by Microsoft Corporation of Redmond,Wash. State), and a programmatic client 108 executing on respectiveclient machines 110 and 112.

An interface server 114 is in communication with an interface datastructures 116 to provide configured interfaces (e.g., programmaticand/or web interfaces) to one or more application servers 118. Theapplication servers 118 host one or more marketplace applications 120and payment applications 122. The application servers 118 are, in turn,shown to be coupled to one or more databases servers 124 that facilitateaccess to one or more databases 126.

The marketplace applications 120 may provide a number of marketplacefunctions and services to users that access the networked system 102.The payment applications 122 may likewise provide a number of paymentservices and functions to users. The payment applications 122 may allowusers to accumulate value (e.g., in a commercial currency, such as theU.S. dollar, or a proprietary currency, such as “points”) in accounts,and then later to redeem the accumulated value for products (e.g., goodsor services) that are made available via the marketplace applications120. While the marketplace and payment applications 120 and 122 areshown in FIG. 1 to both form part of the networked system 102, it willbe appreciated that, in alternative embodiments, the paymentapplications 122 may form part of a payment service that is separate anddistinct from the networked system 102.

In an example embodiment, the operations of the configurable interface114 that enables communication with the client machines 110, 112 and theand/or the third party server 130 may be separate from the functionalityprovided by the user interface data structure 116 that enables data tobe sent and received from the multiple applications 120, 122 through theapplication server 118. For example, the use of the configurableinterface 114 in communication with the interface data structure 116 mayenable the configurable interface 114 to incorporate functionalcomponents of the interface data structure 116 selected to beimplemented server-side for providing different user experiences to anumber of users while interacting with the networked system 102 throughthe client machines 110, 112. An example embodiment of the interfacedata structure 116 is described in greater detail below.

In an example embodiment, the configurable interface 114 may receivedata from the interface data structures 116 and present the data to theweb client 106 and/or the programmatic client 108 according to aninterface selection. A method for accessing an interface selection isdescribed in greater detail below.

Further, while the system 100 shown in FIG. 1 employs a client-serverarchitecture, the present invention is not limited to such anarchitecture, and could equally well find application in a distributed,or peer-to-peer, architecture system, for example. The variousmarketplace and payment applications 120 and 122 could also beimplemented as standalone software programs, which do not necessarilyhave networking capabilities.

The web client 106 accesses the various marketplace and paymentapplications 120 and 122 via the configurable interface supported by theinterface server 114. The programmatic client 108 also accesses thevarious services and functions provided by the marketplace and paymentapplications 120 and 122 via the configurable interface provided by theinterface server 114. The programmatic client 108 may, for example, be aseller application (e.g., the TurboLister application developed by eBayInc., of San Jose, Calif.) to enable sellers to author and managelistings on the networked system 102 in an off-line manner, and toperform batch-mode communications between the programmatic client 108and the networked system 102.

FIG. 1 also illustrates a third party application 128, executing on athird party server machine 130, as having programmatic access to thenetworked system 102 via the configurable interface provided by theinterface server 114. For example, the third party application 128 may,utilizing information retrieved from the networked system 102, supportone or more features or functions on a website hosted by the thirdparty. The third party website may, for example, provide one or morepromotional, marketplace or payment functions that are supported by therelevant applications of the networked system 102.

FIG. 2 is a block diagram illustrating multiple applications 120 and 122that, in one example embodiment, are provided as part of the networkedsystem 102 (see FIG. 1). The applications 120 may be hosted on dedicatedor shared server machines (not shown) that are communicatively coupledto enable communications between server machines. The applicationsthemselves are communicatively coupled (e.g., via appropriateinterfaces) to each other and to various data sources, so as to allowinformation to be passed between the applications or so as to allow theapplications to share and access common data. The applications mayfurthermore access one or more databases 126 via the database servers124.

The networked system 102 may provide a number of publishing, listing andprice-setting mechanisms whereby a seller may list (or publishinformation concerning) goods or services for sale, a buyer can expressinterest in or indicate a desire to purchase such goods or services, anda price can be set for a transaction pertaining to the goods orservices. To this end, the marketplace applications 120 are shown toinclude at least one publication application 200 and one or more auctionapplications 202 which support auction-format listing and price settingmechanisms (e.g., English, Dutch, Vickrey, Chinese, Double, Reverseauctions etc.). The various auction applications 202 may also provide anumber of features in support of such auction-format listings, such as areserve price feature whereby a seller may specify a reserve price inconnection with a listing and a proxy-bidding feature whereby a biddermay invoke automated proxy bidding.

A number of fixed-price applications 204 support fixed-price listingformats (e.g., the traditional classified advertisement-type listing ora catalogue listing) and buyout-type listings. Specifically, buyout-typelistings (e.g., including the Buy-It-Now (BIN) technology developed byeBay Inc., of San Jose, Calif.) may be offered in conjunction withauction-format listings, and allow a buyer to purchase goods orservices, which are also being offered for sale via an auction, for afixed-price that is typically higher than the starting price of theauction.

Store applications 206 allow a seller to group listings within a“virtual” store, which may be branded and otherwise personalized by andfor the seller. Such a virtual store may also offer promotions,incentives and features that are specific and personalized to a relevantseller.

Reputation applications 208 allow users that transact, utilizing thenetworked system 102, to establish, build and maintain reputations,which may be made available and published to potential trading partners.Consider that where, for example, the networked system 102 supportsperson-to-person trading, users may otherwise have no history or otherreference information whereby the trustworthiness and credibility ofpotential trading partners may be assessed. The reputation applications208 allow a user, for example through feedback provided by othertransaction partners, to establish a reputation within the networkedsystem 102 over time. Other potential trading partners may thenreference such a reputation for the purposes of assessing credibilityand trustworthiness.

Personalization applications 210 allow users of the networked system 102to personalize various aspects of their interactions with the networkedsystem 102. For example a user may, utilizing an appropriatepersonalization application 210, create a personalized reference page atwhich information regarding transactions to which the user is (or hasbeen) a party may be viewed. Further, a personalization application 210may enable a user to personalize listings and other aspects of theirinteractions with the networked system 102 and other parties.

The networked system 102 may support a number of marketplaces that arecustomized, for example, for specific geographic regions. A version ofthe networked system 102 may be customized for the United Kingdom,whereas another version of the networked system 102 may be customizedfor the United States. Each of these versions may operate as anindependent marketplace, or may be customized (or internationalizedand/or localized) presentations of a common underlying marketplace. Thenetworked system 102 may accordingly include a number ofinternationalization applications 212 that customize information (and/orthe presentation of information) by the networked system 102 accordingto predetermined criteria (e.g., geographic, demographic or marketplacecriteria). For example, the internationalization applications 212 may beused to support the customization of information for a number ofregional websites that are operated by the networked system 102 and thatare accessible via respective web servers 116.

Navigation of the networked system 102 may be facilitated by one or morenavigation applications 214. For example, a search application (as anexample of a navigation application) may enable key word searches oflistings published via the networked system 102. A browse applicationmay allow users to browse various category, catalogue, or systeminventory structures according to which listings may be classifiedwithin the networked system 102. Various other navigation applicationsmay be provided to supplement the search and browsing applications.

In order to make listings, available via the networked system 102, asvisually informing and attractive as possible, the marketplaceapplications 120 may include one or more imaging applications 216utilizing which users may upload images for inclusion within listings.An imaging application 216 also operates to incorporate images withinviewed listings. The imaging applications 216 may also support one ormore promotional features, such as image galleries that are presented topotential buyers. For example, sellers may pay an additional fee to havean image included within a gallery of images for promoted items.

Listing creation applications 218 allow sellers conveniently to authorlistings pertaining to goods or services that they wish to transact viathe networked system 102, and listing management applications 220 allowsellers to manage such listings. Specifically, where a particular sellerhas authored and/or published a large number of listings, the managementof such listings may present a challenge. The listing managementapplications 220 provide a number of features (e.g., auto-relisting,inventory level monitors, etc.) to assist the seller in managing suchlistings. One or more post-listing management applications 222 alsoassist sellers with a number of activities that typically occurpost-listing. For example, upon completion of an auction facilitated byone or more auction applications 202, a seller may wish to leavefeedback regarding a particular buyer. To this end, a post-listingmanagement application 222 may provide an interface to one or morereputation applications 208, so as to allow the seller conveniently toprovide feedback regarding multiple buyers to the reputationapplications 208.

Dispute resolution applications 224 provide mechanisms whereby disputesarising between transacting parties may be resolved. For example, thedispute resolution applications 224 may provide guided procedureswhereby the parties are guided through a number of steps in an attemptto settle a dispute. In the event that the dispute cannot be settled viathe guided procedures, the dispute may be escalated to a third partymediator or arbitrator.

A number of fraud prevention applications 226 implement fraud detectionand prevention mechanisms to reduce the occurrence of fraud within thenetworked system 102.

Messaging applications 228 are responsible for the generation anddelivery of messages to users of the networked system 102, such messagesfor example advising users regarding the status of listings at thenetworked system 102 (e.g., providing “outbid” notices to bidders duringan auction process or to provide promotional and merchandisinginformation to users). Respective messaging applications 228 may utilizeany one have a number of message delivery networks and platforms todeliver messages to users. For example, messaging applications 228 maydeliver electronic mail (e-mail), instant message (IM), Short MessageService (SMS), text, facsimile, or voice (e.g., Voice over IP (VoIP))messages via the wired (e.g., the Internet), Plain Old Telephone Service(POTS), or wireless (e.g., mobile, cellular, WiFi, WiMAX) networks.

Merchandising applications 230 support various merchandising functionsthat are made available to sellers to enable sellers to increase salesvia the networked system 102. The merchandising applications 230 alsooperate the various merchandising features that may be invoked bysellers, and may monitor and track the success of merchandisingstrategies employed by sellers.

The networked system 102 itself, or one or more parties that transactvia the networked system 102, may operate loyalty programs that aresupported by one or more loyalty/promotions applications 232. Forexample, a buyer may earn loyalty or promotions points for eachtransaction established and/or concluded with a particular seller, andbe offered a reward for which accumulated loyalty points can beredeemed.

Interface applications 234 may enable selection and/or creation ofcomponents that enable communication (e.g., for the web client 110, theprogrammatic client 112 and/or the third party application 128) throughthe configurable interface 114 with an application running on theapplication servers 118.

Referring to FIG. 3, an interface data structure 116 (see FIG. 1)according to an example embodiment is illustrated. The interface datastructure 116 may be an object or other data structure usable within thenetworked system 102 (see FIG. 1).

The user interface data structure 116 includes a structure ApplicationProgram Interface (API) 302 and a functional module 304. The structureAPI 302 provides an interface for communication between the configurableinterface and the application server 118. In an example embodiment, thestructure API 302 may enable a user and/or developer to create and/orutilize a number of the configurable user interfaces to operate with thenetworked system 102.

The functional module 304 includes a selection of components forproviding functionality to the configurable interface (e.g.,server-side) for enabling communication through the structure API 302with an application hosted on the application server 118. An exampleembodiment of the functional module 304 is described in greater detailbelow.

In an example embodiment, instead of users being able to select anoverlay (e.g., a skin) that alters look and feel of the interface bymaking a client-side change to a same interface, the users may selectthe functional components of the configurable interface that are to beused server-side.

Referring to FIG. 4, a functional module 304 (see FIG. 3) according toan example embodiment is illustrated. The functional module 304 includesa number of functional components to provide functionality for a user toaccess a system (e.g., the networked system 102). For example, thefunctional components 402-418 may communicate with the marketplace andpayment applications 120, 122 (see FIG. 1) of the networked system 102to enable a user to interact with the marketplace and paymentapplications 120, 122.

The functional module 304 may include one or more access functionalcomponents 402, one or more user profile functional component 404, oneor more search functional component 406, one or more bid functionalcomponent 408, one or more buy functional component 410, one or moresell functional components 412, one or more communication functionalcomponents 414, one or more view functional components 416, and/or oneor more payment functional component 418. It may be appreciated thatother functional components may also be included and used to interactwith the networked system 102.

The access functional components 402 provide functionality to enable auser to access a system through the configurable interface. For example,the access functional component 402 may enable a user to log on and logoff of the networked system 102 and/or communicate with the marketplaceand payment applications 120, 122.

The user profile functional components 404 provide functionality toenable a user profile of the user to be retained and used within asystem. For example, the user profile functional component 404 mayenable use of user profiles (e.g., as may be stored in the database 126)when accessing the networked system 102.

The search functional components 406 provide functionality to enable auser to conduct a search of a system through the configurable interface.For example, the search functional component 406 may enable a user ofthe networked system 102 to search for listings of items for sale (e.g.,fixed-price and/or auction), system information, other users of thenetworked system 102, and the like.

The bid functional components 408 provide functionality to enable theuser to bid for a selection of value (e.g., an item) through theconfigurable interface that is listed for sale through auction. The buyfunctional component 410 provides functionality to enable the user tobuy an item that is for sale. The sell functional component 412 providesfunctionality to enable the user to sell an item (e.g., through listingat a fixed-price listing and/or auction listing).

The communication functional components 414 provide functionality tocommunicate (e.g., through the configurable interface) among users of asystem. For example, the communication functional component 414 mayenable communication among users of the networked system 102 and/orsystem administration.

The view functional components 416 provide functionality to enableviewing of information (e.g., text and/or pictures) of a selection ofvalue. The payment functional component 418 provides functionality toenable payment for an item purchased and/or receive payment for an itemsold.

In an example embodiment, the functional components 402-418 may beselected and/or created by the user interface application 234 (see FIG.2).

A selection may be made of the functional components 402-418 to beincluded in the functional module 400 depending on the functionalitydesired for the configurable user interface 115. For example, allfunctional components 402-418 may be included in the functional module400 or a subset of the available functional components 402-418 may beincluded in the functional module 400.

In an example embodiment, a selection may be made from among a pluralityof available functional components of the same type. For example, morethan one of the search functional component 406 may be available forselection with a configurable interface. By way of example, a selectionof a first search functional component 406 may enable a user to enter atext string for a search in a search box, receive a number of searchresults, and select a search result to obtain additional details throughthe configurable user interface. A selection of a second searchfunctional component 406 may enable a user to enter a text string for asearch into a search box, receive a number of search results, and selectsearch results from the number of search results to receive aside-by-side comparison of the selected search results through theconfigurable user interface. A selection of a third search functionalcomponent 406 may enable a user to visually select pictures of a numberof products (e.g., without showing relating text) to enable the user toselect a product to see similar products through the configurable userinterface.

By way of a further example of the availability of a plurality ofavailable functional components of the same type, a selection of a firsttype of the view functional component 416 may enable a user to viewattributes of a selected product. A selection of a second type of theview functional component 416 may enable a user to view an image of theproduct and one or more images of similar products. A selection of athird type of the view functional component 416 may enable a user toview an image of the product from more than one view (e.g., a frontview, a side view, or a back view).

Referring to FIG. 5, a method 500 for providing system access inaccordance with an example embodiment is illustrated. In an exampleembodiment, the method 500 may be performed by the interface application234 (see FIG. 2).

User login information may be verified at block 502. For example, a usermay provide a user name and a password to access the networked system102 (see FIG. 1).

A configurable interface may be accessed at block 504. For example, auser may select a configurable interface (e.g., for the interface server114), the interface application 234 may select the configurableinterface, or the configurable interface may be pre-selected. An exampleembodiment of a method for accessing a configurable interface isdescribed in greater detail below.

Communication may be provided through the configurable interface with anapplication hosted on the application server 118 and presented to theuser through a client (e.g., the web client 106 or programmatic client108) at block 506. An example embodiment of communicating through theconfigurable interface is described in greater detail below.

A determination may be made at decision block 508 whether to modify theconfigurable interface. If a determination is made to modify theconfigurable interface, the method 500 may return to block 504. If adetermination is made not to modify the configurable interface atdecision block 508, the method 500 may proceed to decision block 510.

At decision block 510, a determination may be made as to whethercontinued access is to be provided through the configurable interface.If a determination is made that continued access is to be provided, themethod 500 may return to block 506. If a determination is made thatcontinued access is not to be provided at block 506, the method 500 mayterminate.

Referring to FIG. 6, a method 600 for accessing a configurable interfacein accordance with an example embodiment is illustrated. In an exampleembodiment, the method 600 may be performed at the block 504 (see FIG.5).

User information may be accessed at block 602. For example, the userinformation may include information regarding whether the user has apreselected configurable interface for communication.

At decision block 604, a determination may be made as to whether apreselected interface has been selected for the user. For example, thepreselected interface may be a configurable interface selected by theuser from a previous interaction with the networked system andassociated with the user information of the user and/or or thepreselected interface may be selected by the interface application 234at random or based on a desired type of access by the user. By way of anexample, a preselected configurable interface may be a first type whenused for an auction site and a second type when used for a review site,or the preselected configurable interface may be a first type when usedon a mobile device (e.g., the client machine 110, 112) or a second typewhen used on a computing system (e.g., the client machine 110, 112).

If the configurable interface has been preselected, the preselectedinterface may be accessed at block 606. If the configurable interfacehas not been preselected at decision block 604, available interfaceselections may be presented at block 608. For example, the availableinterface selections may include configurable interfaces created byusers, developers and/or administrators of the site. Each configurableinterface may be associated with one or more functional components,and/or the user may select one or more functional components toassociate with the configurable interface. In an example embodiment, auser may create a new configurable interface (with or without one ormore associated functionality components) for communicating withapplications (e.g., the marketplace applications 120 and/or the paymentapplications 122) running on the application server 118.

An interface selection (e.g., a selection of a configurable interface)may be received from the user at block 610.

In an example embodiment, a default configurable interface may be usedby the interface server 114 (see FIG. 1) to enable a user to make theinterface selection.

The interface selection of the configurable interface may enable a firstuser to have a different experience that a second user with a same site(e.g., the networked system 102). For example, a first user may select afirst configurable interface to enable searching of item listings one ata time, a second user may select a second configurable interface toenable searching and comparing items by use of a temporary basketavailable in the second configurable interface, and a third user mayselect a third configurable interface to enable searching to create alist of items on which the third user may bid.

In an example embodiment, the selected configurable interface mayprovide information for presentation on the web client 106, theprogrammatic client 110, and/or the third party application 128differently even though the components associated with the configurableinterface may be the same. For example, the configurable interface maybe configured to provide output to the web client 106, the programmaticclient 110, and/or the third party application 128 graphically,textually, and/or audibly.

The configurable interface may optionally be configured to modify thepresentation of results (e.g., output) depending on one or more sitefactors (e.g., based on a type of item being browsed). For example, adiamond may be browsed in a first configuration and a writing pen may bebrowsed in a second configuration, a category of products, a class ofproducts, a demography of the user, web accessibility (e.g., a personalcomputer or a hand-held device) of the user, and the like. Theconfigurable interface may optionally be configured for differentclasses of users. For example, a teenager may use a first configurationand a senior citizen may use a second configuration.

One or more functional components 402-418 (see FIG. 4) and the structureAPI 302 (see FIG. 3) may be associated with the selected configurableinterface at block 612. For example, the functional components may beassociated with the selected configurable interface and/or selected bythe user.

In an example embodiment, associating a structure API 302 during theoperations at block 612 may provide an interface for communicationbetween the configurable interface and an application server 118 andassociating the one or more functional components 402-418 with theconfigurable interface may provide functionality to the configurableinterface server-side for enabling communication through the structureAPI 302 with an application hosted on the application server 118.

Developer created components may optionally be associated with theselected configurable interface at block 614. For example, developercreated components may include a scratch pad, a shipping costcalculator, a comparative shopping engine, and the like. The developercreated components may include client-side components that areintegrated into the interface during presentation (e.g., to a user). Thedeveloper created components may be associated with the selectedconfigurable interface and/or selected by the user.

The configurable interface may be configured (e.g., associated) with thefunctional components and/or the developer created components at block616. The configured interface may then be provided for communicationwith an application (e.g., as hosted on the application server 118) atblock 618. Upon completion of the operations at block 606 or block 618,the method 600 may terminate.

In an example embodiment, configuration of the configurable interface atblock 616 may be based on the interface selection and/or on constraintsof a device presenting the configurable interface to the user. Forexample, the limited display of a portable communication device, such asa cell phone, personal digital assistant, and the like may limit theconfiguration of the configurable interface.

In an example embodiment, the operations at block 612 and block 614 mayoccur prior to the operations at block 608 and block 610 to first enableselection of components prior to making an interface selection.

Referring to FIG. 7, a method 700 for providing access through aconfigurable interface according to an example embodiment isillustrated. In an example embodiment, the method 700 may be performedat block 506 (see FIG. 5).

A user communication may be received with the configurable interface atblock 702. For example, a communication may be received in the system102 with a configurable interface. The configurable interface mayprovide a user interface to enable communication in the system 102 witha client 106, 108 operating on the client machine 110, 112. Theconfigurable interface may receive functionality server-side from one ormore functional components 402-418 to enable communication with anapplication hosted on the application server 118.

One or more components (e.g., the functional components) that areassociated with the configurable interface and relevant to thecommunication for may be identified at block 704.

The one or more identified components may process the user communicationto communicate with the application server 118 and at block 706. Theresults of the processed request (e.g., as received from the applicationserver 118) may be received at block 708 and presented to the clientthrough the configurable interface at block 710.

At decision block 712, a determination may be made as to whether anothercommunication will be received. If a determination is made that anothercommunication will be received, the method 700 may return to block 702.If a determination is made at decision block 712 that another usercommunication will not be received, the method 700 may terminate.

FIG. 8 shows a diagrammatic representation of machine in the exampleform of a computer system 800 within which a set of instructions may beexecuted causing the machine to perform any one or more of themethodologies discussed herein. In alternative embodiments, the machineoperates as a standalone device or may be connected (e.g., networked) toother machines. In a networked deployment, the machine may operate inthe capacity of a server or a client machine in server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine may be a server computer, a clientcomputer, a personal computer (PC), a tablet PC, a set-top box (STB), aPersonal Digital Assistant (PDA), a cellular telephone, a web appliance,a network router, switch or bridge, or any machine capable of executinga set of instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 800 includes a processor 802 (e.g., acentral processing unit (CPU) a graphics processing unit (GPU) or both),a main memory 804 and a static memory 806, which communicate with eachother via a bus 808. The computer system 800 may further include a videodisplay unit 810 (e.g., a liquid crystal display (LCD) or a cathode raytube (CRT)). The computer system 800 also includes an alphanumeric inputdevice 812 (e.g., a keyboard), a cursor control device 814 (e.g., amouse), a drive unit 816, a signal generation device 818 (e.g., aspeaker) and a network interface device 820.

The drive unit 816 includes a machine-readable medium 822 on which isstored one or more sets of instructions (e.g., software 824) embodyingany one or more of the methodologies or functions described herein. Thesoftware 824 may also reside, completely or at least partially, withinthe main memory 804 and/or within the processor 802 during executionthereof by the computer system 800, the main memory 804 and theprocessor 802 also constituting machine-readable media.

The software 824 may further be transmitted or received over a network826 via the network interface device 820.

While the machine-readable medium 822 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the present invention. The term “machine-readablemedium” shall accordingly be taken to include, but not be limited to,solid-state memories, optical and magnetic media, and carrier wavesignals.

Thus, a method and system for utilizing configurable interfaces havebeen described. Although the present invention has been described withreference to specific example embodiments, it will be evident thatvarious modifications and changes may be made to these embodimentswithout departing from the broader spirit and scope of the invention.Accordingly, the specification and drawings are to be regarded in anillustrative rather than a restrictive sense.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment.

What is claimed is:
 1. A method comprising: accessing user informationfor a first user; determining whether the user information includes apreselected configurable interface; providing the preselectedconfigurable interface based on the user information including thepreselected configurable interface; and based on the user informationnot including the preselected configurable interface, configuring, usingone or more processors, a configurable interface based on a userselection of the configurable interface from a plurality of availableconfigurable interfaces.
 2. The method of claim 1, wherein thepreselected configurable interface comprises a first interface when usedfor an auction site and a second interface when used for a review site.3. The method of claim 1, wherein the preselected configurable interfacecomprises a first interface when used on a mobile device and a secondinterface when used on a non-mobile device.
 4. The method of claim 1,wherein the configuring comprises associating a structure applicationprogram interface (API) and at least one functional component with theconfigurable interface, the at least one functional component to enablecommunication through the structure API with an application hosted on anapplication server, the structure API to provide an interface forcommunication between the configurable interface and the applicationserver; and configuring the configurable interface selection with thestructure API and the at least one functional component.
 5. The methodof claim 4, wherein the one or more functional components are directedto accessing a system, retaining a user profile, searching the system,bidding for selection of value, buying an item, selling an item,communicating with other users, viewing of information, and enablingpayment.
 6. The method of claim 1, wherein the configuring comprisespresenting information to the first user in a different manner than to asecond user.
 7. The method of claim 1, wherein the configuring comprisesconfiguring the configurable interface based on one or more sitefactors.
 8. The method of claim 7, wherein the one or more site factorscomprise one or more of a category of products, a class of products, webaccessibility of a device used by the first user, and a demography ofthe first user.
 9. The method of claim 1, wherein the configuringcomprises configuring the configurable interface for different classesof users.
 10. The method of claim 1, wherein the configuring comprisesconfiguring the configurable interface with at least one developercreated component, the developer created component being a client-sidecomponent that is integrated into the configurable interface duringpresentation of the configurable interface to the first user.
 11. Themethod of claim 1, wherein the configuring comprises configuring theconfigurable interface based on constraints of a device presenting theconfigurable interface to the first user.
 12. A system comprising: meansfor accessing user information for a first user; means for determiningwhether the user information includes a preselected configurableinterface; means for providing the preselected configurable interfacebased on the user information including the preselected configurableinterface; and based on the user information not including thepreselected configurable interface, means for configuring, using one ormore processors, a configurable interface based on a user selection ofthe configurable interface from a plurality of available configurableinterfaces.
 13. The system of claim 12, wherein the means forconfiguring comprises means for associating a structure applicationprogram interface (API) and at least one functional component with theconfigurable interface, the at least one functional component to enablecommunication through the structure API with an application hosted on anapplication server, the structure API to provide an interface forcommunication between the configurable interface and the applicationserver; and means for configuring the configurable interface selectionwith the structure API and the at least one functional component. 14.The system of claim 12, wherein the means for configuring configures theconfigurable interface based on one or more site factors.
 15. The systemof claim 12, wherein the one or more site factors comprise one or moreof a category of products, a class of products, web accessibility of adevice used by the first user, and a demography of the first user. 16.The system of claim 12, wherein the means for configuring configures theconfigurable interface based on different classes of users.
 17. Thesystem of claim 12, wherein the means for configuring configures theconfigurable interface with at least one developer created component,the developer created component being a client-side component that isintegrated into the configurable interface during presentation of theconfigurable interface to the first user.
 18. The system of claim 12,wherein the means for configuring configures the configurable interfacebased on constraints of a device presenting the configurable interfaceto the first user.
 19. A non-transitory machine-readable storage mediumcomprising instructions, which when executed by a machine, cause themachine to perform a method comprising: accessing user information for afirst user; determining whether the user information includes apreselected configurable interface; providing the preselectedconfigurable interface based on the user information including thepreselected configurable interface; and based on the user informationnot including the preselected configurable interface, configuring, usingone or more processors, a configurable interface based on a userselection of the configurable interface from a plurality of availableconfigurable interfaces.
 20. The non-transitory machine-readable storagemedium of claim 19, wherein the configuring comprises: associating astructure application program interface (API) and at least onefunctional component with the configurable interface, the at least onefunctional component to enable communication through the structure APIwith an application hosted on an application server, the structure APIto provide an interface for communication between the configurableinterface and the application server; and configuring the configurableinterface selection with the structure API and the at least onefunctional component.